//Event.h
#ifndef _EVENT_H_
	#define _EVENT_H_

#include <SDL/SDL.h>

//The Event class handles user inputed events
class Event {
	public:

//No argument constructor
		Event();

//Virtual Event destructor
		virtual ~Event();

//Virtual function to handle when events happen
		virtual void OnEvent(SDL_Event* Event);

//Virtual functions to set what happens when specific keys are pressed and depressed
//SDLKey sym is the SDL defined symbol for a key
		virtual void OnKeyDown(SDLKey sym, SDLMod mod, Uint16 unicode);
		virtual void OnKeyUp(SDLKey sym, SDLMod mod, Uint16 unicode);

//Virtual function to set what happens when the screen is minimized
		virtual void OnMinimize();

//Virtual function to set what happens when the window is restored
		virtual void OnRestore();

//Virtual function to set what happens when the window is resized
		virtual void OnResize(int w,int h);

//Virtual function to set what happens when the window is exited
		virtual void OnExit();

//Virtual function to set what happens when the user inputs data
		virtual void OnUser(Uint8 type, int code, void* data1, void* data2);
};

#endif
